// 泛型接口
// 通用思路：
//  1. 找到可变的类型部分，通过泛型抽象为泛型参数（定义参数）
//  2. 在使用泛型的时候，把具体类型传入到泛型参数位置 (传参）
type Response <T>  = {
  code:number
  msg:string
  data: T
}

type User  = {
  name:string
  age:number
}

type Goods = {
  id:number
  goodsName:string
}

// 传递 User 类型
const  user:Response<User> = {
  code:200,
  msg:'success',
  data:{
    name:'张三',
    age:18
  }
}
console.log(user);


const goods:Response<Goods> = {
  code:200,
  msg:'success',
  data:{
    id:101,
    goodsName:'服饰'
  }
}
console.log(goods);